Computers and computer software make a very important part of modern life and business. Specifically, for any business organization to stay competitive, it is imperative that it uses various computer based software to manage data, customers, employees, etc. Businesses use a number of different software for virtually every function of their daily operations, including payroll; customer relation management, accounting, inventory management, etc. Each of these various software generally use one or more underlying database to store data and a number of graphical user interface (GUI) based forms to interact with the computer user. Depending on the business model, there may also be one or more intermediate layers operating between such database and the forms presented to the end user.
For example, an accounting software may use a form to present data related to a transaction to a user. Alternatively a form may also be used to allow a user to input data that will be processed by that accounting software and/or stored in the underlying database. For example, a purchase form may be presented to a user of the accounting system to allow the user to input information regarding purchase of an item. Such a purchase form may have various fields, including the general ledger account number, the vendor information, inventory account if the purchased item is an inventory item, an expense account if the purchase item is an expense item, method of payment, payment account, etc. Each of the various fields that are displayed with the form may be attached to related tables in the database. The form may also be attached to one or more objects representing these fields.
Moreover, one or more of these fields, as well as the purchase form itself may have various controls attached to the them. An example of a control attached to a purchase form may be the sales tax rate to be applied to the purchased item based on applicable sales tax jurisdiction, or an authorization control that applies an authorization rule based on the monetary amount of the purchase, etc.
Based on the data and the controls attached to a form, every time a form in invoked by a user, it may take considerable amount of time to open a form. This problem may be even more acute in modeless operation of a software where a number of forms may be open simultaneously and data and controls from one or more of these simultaneously open forms may de related to data and controls from other one or more of these open forms. For example, an accounting software may allow a user to open a purchase form, an inventory report form and an income statement form simultaneously, wherein the changes made via the purchase form may affect the data related to the inventory report form as well as the income statement form. Such complex forms may increase the load time and therefore slow down the use of this forms, thus resulting in slower applications and inferior user experience. Thus, there is a need for providing a form management system that allows opening and displaying forms in a more efficient manner.